home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / internal.tar / READ.ME < prev   
Text File  |  1991-04-03  |  7KB  |  171 lines

  1.  
  2.  
  3.                  Revised HP48 Internals Address List 
  4.                  
  5.                    (1) Sorted by Object Type and Function
  6.                    (2) Sorted by Increasing Address
  7.  
  8.         Including new contributions from Paul Dale and Rick Grevelle
  9.                            April 2, 1991
  10.  
  11.  
  12. Here is the latest list of HP48 internals addresses and short descriptions.
  13. Since the list is useful being sorted both by address *and* function,
  14. it is provided here in both configurations.
  15.  
  16. Paul Dale recently sent a rather large list of newly discovered 
  17. constants in the HP48 ROM, including some in the "hidden" 32K ROM between
  18. addresses 70000 and 7FFFF. Notes from Paul are below:
  19.  
  20. ====================================================================
  21.  
  22. hiya,
  23.  
  24. I wrote some programs to search the rom-dump to extract constants of various
  25. types.  I am including all the constants from the 48 that are of types
  26. real, long real and long complex (the existing list of complex numbers
  27. is already complete).  Where possible, I have added comments about some of
  28.  
  29.  
  30. The rom version is revision E just in case.
  31.  
  32.  
  33.                             Pauli
  34. seeya
  35.  
  36. Paul Dale               | Internet/CSnet:            grue@batserver.cs.uq.oz.au
  37. Dept of Computer Science| Bitnet:       grue%batserver.cs.uq.oz.au@uunet.uu.net
  38. Uni of Qld              | JANET:           grue%batserver.cs.uq.oz.au@uk.ac.ukc
  39. Australia, 4072         | EAN:                          grue@batserver.cs.uq.oz
  40.                         | UUCP:           uunet!munnari!batserver.cs.uq.oz!grue
  41. f4e6g4Qh4++             | JUNET:                     grue@batserver.cs.uq.oz.au
  42.  
  43.    .
  44.    .
  45.    .
  46.  
  47. hiya,
  48.  
  49. I'm sending the list of ALL short integers that are present in the HP's rom
  50. This includes bits of code that just happen to look like short integers.
  51. My programs search for the header and then dump the object (if it is legal)
  52. and then continue searching from just after the header.  This should
  53. mean that every possible object has been located.  I've figured out a couple
  54. more machine code entries as well.
  55.  
  56. (An earlier comment of mine:)
  57. >With regard to built-in constants...I have thought about this for a few
  58. >months now....One wonders why there are so many copies of the same reals
  59. >in the ROM. It's a shame that they didn't collectively attempt to 
  60. >remove as many duplicates as possible so as to save a little bit of
  61. >space. I bet that perhaps a couple of hundred nybbles may have been
  62. >spared in the process. Oh well. 
  63.  
  64. As an example of this, the short integer <00001h> occurs 56 times in the
  65. rom (it might be an interesting code sequence, so it might not be a waste).
  66. Changing this alone would save 55*10=550 nibbles!!!  One of the things that
  67. I personally dislike, is the presence of local/global variables with the
  68. same name multiple times in a short piece of code.  This wastes space and
  69. I think that it also is slower than defining the variable once and re-using
  70. that definition.  Better yet would have been to make the local variables
  71. have less meaningfull names, which would also reduce the space requirements.
  72.  
  73. Oh well!
  74.  
  75.                         Pauli
  76. seeya
  77.  
  78.  
  79. ============================================================================
  80.  
  81. In addition, Rick Grevelle recently sent his latest list of prefixed 
  82. machine code routine entry points which he researched. This includes a 
  83. couple of dozen new entry points that have been added to the master list
  84. (and as a result, the corresponding "empty" addresses previously identified 
  85. as unknown have been replaced).
  86.  
  87.  
  88. ============================================================================
  89.  
  90. Notes from earlier editions of this list :
  91.  
  92. Rick Grevelle contributed a complete list of all "prefixed" RPL code
  93. addresses along with definitions for the ones that he knew. The new addresses
  94. which Rick added with definitions are marked with a dash as his "author
  95. symbol". At the end of the sorted list are the remaining undefined prefixed
  96. entry points in address order.  This will give an idea of what's left out
  97. there to explore. 
  98.  
  99. Jim Cloos provided a list of HP's names for XLIB functions as he discovered
  100. in the USRLIB code. New additions from Jim are marked with a semicolon. Also,
  101. the existing XLIB entries are now labelled with "/U" (representing the USRLIB
  102. HP name) followed by the name for the entry point.
  103.  
  104. ---------------------------
  105. Here is Jim Cloos' notes about his entries:
  106.  
  107. Here are the names of the builin romptr's (ie, XLIB's) and data types as
  108. per the -l and -d output files from usrlib.  These come from the usrlib src,
  109. but have been converted into the format of sad .symbols files.  As these
  110. names can be seen by anyone with a copy of the usrlib executables (any
  111. version)
  112. and as I've already posted this, there should be no problem with including
  113. it in the combined list.
  114.  
  115. Notice that each of the xlib's has the prefix x, alg, or rpn.  I presume
  116. the x stands for either Xlib, eXternal, or type Xing.
  117.  
  118. Enjoy.
  119.  
  120. James H. Cloos, Jr.        Phone:  +1 716 673-1250
  121. cloos@ACSU.Buffalo.ED    Snail:  PersonalZipCode:  14048-0772, USA
  122. cloos@ub.UUCP            Quote:  <>
  123.  
  124. ---------------------------
  125. Below is Jan Brittenson's original notes on his symbols file entries:
  126.  
  127. Here is my
  128. .symbols file as it looks today.  Symbols starting with a capital
  129. letter (e.g.  `Foo') are RPL objects, all others are ML labels (e.g.
  130. `foo'). A symbol, ending with `'p' is a predicate which returns True
  131. (#3a81?) or False (#3ac0?). A symbol ending with `q' is questionable,
  132. i.e. it's what I *think* it is, or a part of its function; it may for
  133. instance be some test that also alters the heap, or messes with local
  134. registers, or something, name `Testq'. Symbols ending with _ref or
  135. _ref_<ordinal> are simply references, i.e. jump instructions. For
  136. instance, "jump.a foo" may exist only for the purpose of addressing
  137. foo using local branches, and could then be preceded with `foo_ref:'
  138. or `foo_ref_2:' - you get the idea. A short is a 5-nibble integer, and
  139. is the default operand type.  If only one operand type follows the
  140. name, then all operands are of this type. For instance, `Sub' (Not
  141. Substring, that would be `Sub_string' or `Substring_string'!)
  142. subtracts two shorts, while `Sub_real"' subtracts two reals. They may
  143. sometimes appear as `Sub_short_short' or `Sub_real_real' which are
  144. essentially the same thing. The are still great possibilities for
  145. amibiguity, though, my usage is not always coherent, and there are
  146. typos. If a routine does more than one thing, then the names are
  147. (ideally, in simple cases) concatenated, e.g. `Swap_Over' which tells
  148. us that this piece of code is an RPL object that first Swaps, and then
  149. does an Over. Or `Dup_Inc_Gtp' would do a Dup, Increment (short of
  150. course) and test if Greater Than (always False).
  151.  
  152.    Other conventions I've used are: "Return" (i.e. End) exits the
  153. current program level; "Ret" exits *two* levels (i.e. it exits the
  154. level above, sorry about the stupid names); anything starting with a
  155. type name (e.g. "Short_17h") is a constant; Get recalls something to
  156. the stack; Set overwrites something (usually the top of the stack, but
  157. sometimes a variable).
  158. -------------
  159.  
  160. Derek Nickel's address list is fairly self-explanatory. 
  161.  
  162.  
  163. Each version of the address list itself is separated into multiple parts 
  164. since it is so large.
  165.  
  166. Jake Schwartz
  167.  
  168. P.S. - Please be patient....all the pieces may not be present immediately.
  169.  
  170.  
  171.